package com.qst.order.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qst.order.domain.ReturnApply;
import com.qst.order.domain.ReturnApplyItem;
import com.qst.order.domain.VO.RefundDetailVO;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

public interface ReturnApplyService extends IService<ReturnApply> {
    void saveItems(List<ReturnApplyItem> items);

    List<ReturnApplyItem> queryItemsByReturnId(Integer returnId);


    /**
     * 分页查询退货申请列表
     * @param page 页码
     * @param size 每页条数
     * @param keyword 搜索关键词
     * @param status 状态筛选
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return 分页结果
     */
    IPage<ReturnApply> getRefundPage(
            int page, int size,
            String keyword, Integer status,
            String startDate, String endDate
    );

    /**
     * 根据ID查询退货详情
     * @param returnId 退货申请ID
     * @return 退货详情VO
     */
    RefundDetailVO getRefundDetail(Integer returnId);

    /**
     * 同意退货申请
     * @param returnId 退货申请ID
     * @return 处理结果
     */
    ReturnApply agreeRefund(Integer returnId);

    /**
     * 拒绝退货申请
     * @param returnId 退货申请ID
     * @param reason 拒绝理由
     * @return 处理结果
     */
    ReturnApply rejectRefund(Integer returnId, String reason);

    /**
     * 导出退货申请列表
     * @param keyword 搜索关键词
     * @param status 状态筛选
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param response 响应对象
     */
  /*  void exportRefundList(
            String keyword, Integer status,
            String startDate, String endDate,
            HttpServletResponse response
    );*/
}
